#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>

/**
 * A FoursquareManagerDelegate is the protocol for a delegate that
 * handles the requests for management of Foursquare functionality.
 *
 * @author      James Lin
 * @version     2.1.4
 * @since       2.0.4
 */
@protocol FoursquareManagerDelegate

/**
 * Get the current location of the user.
 *
 * @return  the current location of the user
 */
- (CLLocation*)getCurrentUserLocation;

/**
 * Handle a notification that the integrated Foursquare tools are done
 * their use.
 */
- (void)handleFoursquareToolsDone;

/**
 * Handle a request to view the given Foursquare annotations on the map.
 *
 * @param annotations  the Foursquare annotations to be placed on the map
 */
- (void)displayFoursquareAnnotations:(NSArray*)annotations;

/**
 * Get the view controller on which to overlay the Foursquare tools.
 *
 * @return  the view controller on which to overlay toolbars
 */
- (UIViewController*)getViewController;

/**
 * Calculate the GPS coordinate given a point relative to the map view.
 *
 * @param point  the point to convert into a coordinate
 * @return       the calculated coordinate
 */
- (CLLocationCoordinate2D)coordFromPoint:(CGPoint)point;

/**
 * Place a temporary target annotation at the specified location.
 *
 * @param location  the location of target annotation
 */
- (void)displayTargetAtLocation:(CLLocationCoordinate2D)location;

/**
 * Clear the temporary target annotation.
 */
- (void)removeTargetAnnotation;

@end
